/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mrp.persistencia.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author root
 */
@Entity
@Table(name = "ordenaprovisionamiento")
@NamedQueries({
    @NamedQuery(name = "Ordenaprovisionamiento.findAll", query = "SELECT o FROM Ordenaprovisionamiento o"),
    @NamedQuery(name = "Ordenaprovisionamiento.findByNumeroordenaprovisionamiento", query = "SELECT o FROM Ordenaprovisionamiento o WHERE o.numeroordenaprovisionamiento = :numeroordenaprovisionamiento"),
    @NamedQuery(name = "Ordenaprovisionamiento.findByFechaemision", query = "SELECT o FROM Ordenaprovisionamiento o WHERE o.fechaemision = :fechaemision"),
    @NamedQuery(name = "Ordenaprovisionamiento.findByEstallas", query = "SELECT o FROM Ordenaprovisionamiento o WHERE o.estallas = :estallas"),
    @NamedQuery(name = "Ordenaprovisionamiento.findByObservacion", query = "SELECT o FROM Ordenaprovisionamiento o WHERE o.observacion = :observacion"),
    @NamedQuery(name = "Ordenaprovisionamiento.findByFechaestimadaentrega", query = "SELECT o FROM Ordenaprovisionamiento o WHERE o.fechaestimadaentrega = :fechaestimadaentrega"),
    @NamedQuery(name = "Ordenaprovisionamiento.findByFechaentrega", query = "SELECT o FROM Ordenaprovisionamiento o WHERE o.fechaentrega = :fechaentrega"),
    @NamedQuery(name = "Ordenaprovisionamiento.findByAprobado", query = "SELECT o FROM Ordenaprovisionamiento o WHERE o.aprobado = :aprobado"),
    @NamedQuery(name = "Ordenaprovisionamiento.findByAprobadopor", query = "SELECT o FROM Ordenaprovisionamiento o WHERE o.aprobadopor = :aprobadopor"),
    @NamedQuery(name = "Ordenaprovisionamiento.findByDigitador", query = "SELECT o FROM Ordenaprovisionamiento o WHERE o.digitador = :digitador"),
    @NamedQuery(name = "Ordenaprovisionamiento.findByFechadigitador", query = "SELECT o FROM Ordenaprovisionamiento o WHERE o.fechadigitador = :fechadigitador")})
public class Ordenaprovisionamiento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2147483647)
    @Column(name = "numeroordenaprovisionamiento")
    private String numeroordenaprovisionamiento;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fechaemision")
    @Temporal(TemporalType.DATE)
    private Date fechaemision;
    @Basic(optional = false)
    @NotNull
    @Column(name = "estallas")
    private boolean estallas;
    @Size(max = 2147483647)
    @Column(name = "observacion")
    private String observacion;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fechaestimadaentrega")
    @Temporal(TemporalType.DATE)
    private Date fechaestimadaentrega;
    @Column(name = "fechaentrega")
    @Temporal(TemporalType.DATE)
    private Date fechaentrega;
    @Basic(optional = false)
    @NotNull
    @Column(name = "aprobado")
    private boolean aprobado;
    @Size(max = 2147483647)
    @Column(name = "aprobadopor")
    private String aprobadopor;
    @Basic(optional = false)
    @NotNull
    @Column(name = "digitador")
    private int digitador;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fechadigitador")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechadigitador;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "ordenaprovisionamientoFk")
    private List<Detalleaprovisionamiento> detalleaprovisionamientoList;
    @JoinColumn(name = "proveedor_fk", referencedColumnName = "numeroproveedor")
    @ManyToOne(optional = false)
    private Proveedor proveedorFk;
    @JoinColumn(name = "inventario_fk", referencedColumnName = "codinventario")
    @ManyToOne(optional = false)
    private Inventario inventarioFk;

    public Ordenaprovisionamiento() {
    }

    public Ordenaprovisionamiento(String numeroordenaprovisionamiento) {
        this.numeroordenaprovisionamiento = numeroordenaprovisionamiento;
    }

    public Ordenaprovisionamiento(String numeroordenaprovisionamiento, Date fechaemision, boolean estallas, Date fechaestimadaentrega, boolean aprobado, int digitador, Date fechadigitador) {
        this.numeroordenaprovisionamiento = numeroordenaprovisionamiento;
        this.fechaemision = fechaemision;
        this.estallas = estallas;
        this.fechaestimadaentrega = fechaestimadaentrega;
        this.aprobado = aprobado;
        this.digitador = digitador;
        this.fechadigitador = fechadigitador;
    }

    public String getNumeroordenaprovisionamiento() {
        return numeroordenaprovisionamiento;
    }

    public void setNumeroordenaprovisionamiento(String numeroordenaprovisionamiento) {
        this.numeroordenaprovisionamiento = numeroordenaprovisionamiento;
    }

    public Date getFechaemision() {
        return fechaemision;
    }

    public void setFechaemision(Date fechaemision) {
        this.fechaemision = fechaemision;
    }

    public boolean getEstallas() {
        return estallas;
    }

    public void setEstallas(boolean estallas) {
        this.estallas = estallas;
    }

    public String getObservacion() {
        return observacion;
    }

    public void setObservacion(String observacion) {
        this.observacion = observacion;
    }

    public Date getFechaestimadaentrega() {
        return fechaestimadaentrega;
    }

    public void setFechaestimadaentrega(Date fechaestimadaentrega) {
        this.fechaestimadaentrega = fechaestimadaentrega;
    }

    public Date getFechaentrega() {
        return fechaentrega;
    }

    public void setFechaentrega(Date fechaentrega) {
        this.fechaentrega = fechaentrega;
    }

    public boolean getAprobado() {
        return aprobado;
    }

    public void setAprobado(boolean aprobado) {
        this.aprobado = aprobado;
    }

    public String getAprobadopor() {
        return aprobadopor;
    }

    public void setAprobadopor(String aprobadopor) {
        this.aprobadopor = aprobadopor;
    }

    public int getDigitador() {
        return digitador;
    }

    public void setDigitador(int digitador) {
        this.digitador = digitador;
    }

    public Date getFechadigitador() {
        return fechadigitador;
    }

    public void setFechadigitador(Date fechadigitador) {
        this.fechadigitador = fechadigitador;
    }

    public List<Detalleaprovisionamiento> getDetalleaprovisionamientoList() {
        return detalleaprovisionamientoList;
    }

    public void setDetalleaprovisionamientoList(List<Detalleaprovisionamiento> detalleaprovisionamientoList) {
        this.detalleaprovisionamientoList = detalleaprovisionamientoList;
    }

    public Proveedor getProveedorFk() {
        return proveedorFk;
    }

    public void setProveedorFk(Proveedor proveedorFk) {
        this.proveedorFk = proveedorFk;
    }

    public Inventario getInventarioFk() {
        return inventarioFk;
    }

    public void setInventarioFk(Inventario inventarioFk) {
        this.inventarioFk = inventarioFk;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (numeroordenaprovisionamiento != null ? numeroordenaprovisionamiento.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Ordenaprovisionamiento)) {
            return false;
        }
        Ordenaprovisionamiento other = (Ordenaprovisionamiento) object;
        if ((this.numeroordenaprovisionamiento == null && other.numeroordenaprovisionamiento != null) || (this.numeroordenaprovisionamiento != null && !this.numeroordenaprovisionamiento.equals(other.numeroordenaprovisionamiento))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "mrp.persistencia.entity.Ordenaprovisionamiento[ numeroordenaprovisionamiento=" + numeroordenaprovisionamiento + " ]";
    }
    
}
